home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / TEST / RESTEST.M < prev    next >
Encoding:
Text File  |  1989-08-17  |  1.4 KB  |  60 lines

  1. MODULE ExcDemo;
  2.  
  3. FROM SYSTEM IMPORT ADDRESS, ADR, TSIZE, BYTE, WORD, LONGWORD, VAL;
  4. FROM ModCtrl IMPORT FirstModuleStart, ReleaseModule, InstallModule;
  5. FROM MOSGlobals IMPORT MemArea;
  6. FROM SysTypes IMPORT ExcSet, IRLevel4;
  7. FROM Excepts IMPORT DeInstallExc, SysInstallSupvExc, ExcDesc, ExcProc;
  8. FROM XBIOS IMPORT ScreenLogicalBase;
  9.  
  10. VAR bp, oldv, hdl: ADDRESS;
  11.     ok: BOOLEAN;
  12.     st: ARRAY [1..1000] OF CARDINAL;
  13.     cnt, c2, i,a:CARDINAL;
  14.     p: POINTER TO ARRAY [0..399] OF ARRAY [0..39] OF BITSET;
  15.     vblwsp, termwsp: MemArea;
  16.  
  17.  
  18. PROCEDURE term;
  19.   BEGIN
  20.     ASSEMBLER BREAK NOP NOP END;
  21.     DeInstallExc (hdl);
  22.     ReleaseModule;
  23.   END term;
  24.  
  25. PROCEDURE vbl (VAR x: ExcDesc): BOOLEAN;
  26.   (*$R- keine Püfungen, damit es etwas schneller geht *)
  27.   VAR b: BITSET;
  28.   BEGIN
  29.     INC (cnt);
  30.     IF cnt > 3 THEN
  31.       cnt:= 0;
  32.       b:= {};
  33.       INCL (b, a);
  34.       IF a=0 THEN a:= 15; ELSE DEC (a) END;
  35.       p^[0,0]:= b;
  36.       p^[1,0]:= b;
  37.       p^[2,0]:= b;
  38.       p^[3,0]:= b;
  39.     END;
  40.     RETURN TRUE
  41.   END vbl;
  42.   (*$R=*)
  43.  
  44. BEGIN
  45.   IF FirstModuleStart () THEN
  46.     (*
  47.     p:= ScreenLogicalBase ();
  48.     vblwsp.bottom:= ADR (st);
  49.     vblwsp.length:= SIZE (st);
  50.     SysInstallSupvExc ( ExcSet {IRLevel4}, vbl, vblwsp, hdl);
  51.     IF hdl # NIL THEN
  52.     *)
  53.       InstallModule (term, termwsp);  (* Modul resident machen *)
  54.       ASSEMBLER BREAK END;
  55.     (*END*)
  56.   ELSE
  57.     term
  58.   END
  59. END ExcDemo.
  60.